Workers are aware of certain difficulties in communicating (e.g addressing) between a computer control unit and a number of related stations, each including its like station-control unit. This invention is directed to a scheme of addressing an array of system modules (e.g. like data storage modules) using pre-existing status lines (e.g. in a status bus), with a simple, convenient modification in each line to thereby designate a unique address for each module.
Conventionally, a master/slave multi-drop communication arrangement requires a means by which the slaves can be distinguished from one another; e.g. by assigning a unique "address" for each individual slave. Typically, this can be done via a DIP switch array on the printed circuit board assembly (for the arrangement). The user, by selectively setting each of the switches to an 0N or OFF position, to thereby create a unique "2.sup.N address" (where N is the number of ON-OFF switch positions). If one grounds one side of the switch assembly and provides pull-up resistors on the other side (the microprocessor side), then a "open" or "closed" setting will result in a logic level "1" or "0", respectively.
FIG. 1 indicates this, with a dip switch DS understood as mounted on a Module Control Board assembly MCB, and connected between ground and an array MA of N modules [here, assume DS is a 5-position switch allowing 2.sup.5, or 32, combinations]. Thus, each module in array MA is individually addressed by physically pre-setting DS.
But, as workers realize, so addressing a module via a "dip switch" can have problems: e.g. the switch can be mis-set; also this approach cannot electronically "store", or re-store, a given module address (as this invention can--see below). Further, it cannot allow a module (once initialized) to "read its own address--as this invention can.
Of course, a Slave Board's Microprocessor MC can "read" this switch DS on initial power-up, and "store" its settings.
The problem with such an arrangement is that the user is responsible for the correct switch setting. This means that he must be aware of all other settings on the bus to ensure that no conflict arises. Should two slaves have the same address setting, then both will attempt to communicate to the master when polled on the serial bus. This will cause data corruption and result in a communication error.
Our approach is different: e.g. as indicated in the FIG. 2 embodiment, we integrate the addressing function into the Communication Bus. Here, address lines aL (assume 5 in this system) are bussed to all the slave boards. The master controller end would ground all the address lines; also each slave microcontroller MC' would have pull-up resistors as in the above mentioned application. (FIG. 1)
Assuming that the communication bus CB is a 25 pin ribbon cable with DB-25 type connectors, one can selectively remove the address pins a-p to each Slave in the connector before assembly. As in the FIG. 1 case there will be 32 possible unique addresses that can thus be designated. By doing this in the cable, we eliminate the possibility of setting any duplicate address; also a user never need to bother to keep track of which addresses have been used.
This means that a physical location in a rack will always have a specific, unique address.
Accordingly, it is an object hereof to ameliorate (at least some of) the foregoing difficulties and provide related advantages, as will become more evident upon considering the following disclosure, in conjunction with the accompanying drawings.